10 INPUT "TODAY'S DATE IS: (MM/DD/YY)";TODAY$:IF TODAY$="" THEN TODAY$=LEFT$(DATE$,2)+"/"+MID$(DATE$,4,2)+"/"+RIGHT$(DATE$,2)
15 PRINT "DATE:";TODAY$;:INPUT " CORRECT (Y/N)";D$:IF D$="N" OR D$="n" OR D$="" THEN 10
20 DATE$=TODAY$
25 DIM PAID(75),UNIT(75),METHOD(75),DAY$(75),PB(75),SOURCE(75)
30 DIM TYPE(75),CHECKNO(75),PAIDTO$(75),DD$(75),AMOUNT(75)
35 CLS:FOR A=1 TO 5:BEEP:NEXT A:PRINT "* * * REMOVE PROGRAM DISK FROM DRIVE A * * *":PRINT "* * * PLACE UNIT NAME/ADDRESS DISK IN DRIVE A * * * "
40 FOR A=1 TO 5 :PRINT:NEXT A: PRINT "STRIKE ANY KEY TO CONTINUE"
45 A$=INKEY$:IF A$="" THEN 45
47 OPEN "numunits" FOR INPUT AS #1: INPUT #1,NUM.UNITS:CLOSE #1
50 CLS:PRINT STRING$(79,"*"):PRINT "*-----T H E M I N I - M I N D E R-------------------------------------------*":PRINT STRING$(79,"*")
55 PRINT "**";TAB(20);"1. ADD NEW TENANT";TAB(78);"**": PRINT "**";TAB(20);"2. EDIT CURRENT TENANT INFORMATION";TAB(78);"**"
60 PRINT "**";TAB(20);"3. GO TO REPORTS MENU";TAB(78);"**":PRINT "**";TAB(20);"4. ENTER RENTAL PAYMENTS/OTHER INCOME";TAB(78);"**":PRINT "**";TAB(20);"5. GO TO BILLING MENU";TAB(78);"**":
65 PRINT "**";TAB(20);"6. GO TO EXPENSE MENU";TAB(78);"**":PRINT "**";TAB(20);"7. EDIT INCOME RECORDS";TAB(78);"**":PRINT "**";TAB(20);"8. CHECKING ACCOUNT REVIEW";TAB(78);"**"
70 PRINT "**";TAB(20);"9. EDIT DAILY REPORTS";TAB(78);"**":PRINT "**";TAB(20);"10. CREATE FILES FOR NEXT CALENDAR YEAR";TAB(78);"**"
75 PRINT "**";TAB(20);"11. DO LABELS";TAB(78);"**"
80 PRINT "**";TAB(20);"12. END SESSION";TAB(78);"**"
375 INPUT "DATE PAYMENT DUE";DUE$:INPUT "CURRENT BALANCE: $";OWE:INPUT "DATE LAST PAID:";LAST$:INPUT "IS UNIT PADLOCKED (Y/N)";PADLOCK$:INPUT "TENANT'S LOCK CUT: (Y/N)";CUT$
380 INPUT "NAME OF OTHER CONTACT, ETC";ONAME$:RETURN
385 CLS:PRINT "1. UNIT #";UNIT$;TAB(15);" 2. SIZE:";SIZE$;TAB(32);"3. AMOUNT OF RENT:";RATE;TAB(57);"4. EXP. TERM:";TERM$:PRINT STRING$(79,"=")
390 PRINT "5. TENANT:";TENANT$;TAB(42);"6.SPOUSE:";SPOUSE$:PRINT "7.ADR.1:";ADDR$;TAB(42);"8.ADR.2:";ADDR1$:PRINT "9. CITY:";CITY$;TAB(35);"10. STATE:";STA$;TAB(50);"11. ZIP CODE:";ZIP$
395 PRINT STRING$(79,"="):PRINT "12. HOME PHONE:";PHONE$:PRINT "13. EMPLOYED BY:";EMPLOY$;TAB(55);"14. WORK PHONE:";WRKPH$:PRINT "15. DRIVER'S LICENSE #:";LICENSE$:PRINT "16. SPOUSE'S EMPLOYER:";SPOUSEMP$:PRINT "17. SPOUSE'S WORK PHONE:";SPWRKPH$
400 PRINT STRING$(79,"=")
405 PRINT "18. DATE DUE:";DUE$;TAB(25);"19. AMOUNT DUE:$";OWE;TAB(50);"20. LAST PAID ON:";LAST$:PRINT "21. PADLOCKED:";PADLOCK$;" 22. LOCK CUT:";CUT$:PRINT "23. OTHER CONTACT:";ONAME$:PRINT STRING$(79,"="):PRINT "24. NO OTHER CHANGES"
410 PRINT STRING$(79,"=")
415 INPUT "KEY IN NUMBER OF ITEM TO CHANGE:";CHANGE
420 ON CHANGE GOTO 520,525,530,535,540,545,555,560,565,570,575,580,585,590,595,600,605,610,615,620,625,630,550,430
425 GOTO 385
430 RETURN
435 CLS:PRINT "UNIT #";UNIT$;TAB(15);" SIZE:";SIZE$;TAB(32);"AMOUNT OF RENT:";RATE;TAB(57);"EXP. TERM:";TERM$:PRINT STRING$(79,"=")
995 CLOSE:OPEN "B:CHEK" FOR INPUT AS #1:INPUT #1,CHEK:CLOSE:PC=CHEK
1000 FOR BB=1 TO TRANS
1005 IF TYPE(BB)=1 OR TYPE(BB)=10 OR TYPE(BB)=12 OR TYPE(BB)=15 OR TYPE(BB)=18 THEN 1015
1010 CHEK=CHEK-AMOUNT(BB):PP=PP+AMOUNT(BB)
1015 NEXT BB
1020 OPEN "B:CHEK" FOR OUTPUT AS #2:PRINT #2,CHEK:CLOSE:PRINT "CHECKING ACCOUNT BALANCE WAS ";USING "$###,###.##";PC:PRINT "AFTER POSTING EXPENSES OF ";USING "$###,###.##";PP;:PRINT " NEW BALANCE IS ";USING "$###,###.##";CHEK
1130 PRINT TAB(20);"1. DO DAILY REPORTS ON UNIT STATUS":PRINT TAB(20);"2. LIST ALL OUTSTANDING UNITS"
1135 PRINT TAB(20);"3. CURRENT STATUS OF A SINGLE UNIT"
1140 PRINT TAB(20);"4. LIST STATUS OF ALL UNITS"
1145 PRINT TAB(20);"5. DO AGING ANALYSIS"
1150 PRINT TAB(20);"6. DUMP INCOME FILES FOR SPECIFIC MONTH":PRINT TAB(20);"7. DUMP EXPENSE FILES FOR SPECIFIC MONTH":PRINT TAB(20);"8. DUMP DAILY REPORTS FOR MONTH"
1155 PRINT TAB(20);"9. RETURN TO MAIN MENU"
1160 PRINT :PRINT :PRINT TAB(15);"SELECT YOUR CHOICE AND STRIKE ENTER KEY";:INPUT CHOICE
1260 PRINT STRING$(79,"="):LPRINT STRING$(79,"="):PRINT "TOTAL NUMBER OF VACANT UNITS:";TOTAL:PRINT "TOTAL VALUE OF RENT ON VACANT UNITS=";USING "$##,###.##";TORATE
1265 LPRINT "TOTAL NUMBER OF VACANT UNITS:";TOTAL:LPRINT "TOTAL VALUE OF RENT ON VACANT UNITS=";USING "$##,###.##";TORATE:VACANT=TOTAL
1270 'INPUT "STRIKE ENTER TO CONTINUE";X
1275 TOTAL=0:TORATE=0:TOTOWE=0:FOR A=1 TO 5:PRINT :LPRINT :NEXT A
1280 IF LEFT$(PU$,1)="y" OR LEFT$(PU$,1)="Y" THEN 1285 ELSE 1295
1285 LPRINT "INVENTORY OF PADLOCKED UNITS ON ";TODAY$:LPRINT STRING$(79,"="):LPRINT "UNIT";TAB(8);"SIZE";TAB(15);"TENANT";TAB(47);"BAL.DUE";TAB(57);"PDLCKED";TAB(65);"CUT":LPRINT STRING$(79,"-")
1290 PRINT "INVENTORY OF PADLOCKED UNITS ON ";TODAY$:PRINT STRING$(79,"="):PRINT "UNIT";TAB(8);"SIZE";TAB(15);"TENANT";TAB(47);"BAL.DUE";TAB(57);"PDLCKED";TAB(65);"CUT":PRINT STRING$(79,"-")
1295 FOR AA=1 TO NUM.UNITS
1300 GET #1,AA:GET #2,AA:GET #3,AA:GOSUB 140
1305 DEL=OWE/RATE: IF DEL=1 AND MID$(TODAY$,4,2)>"20" THEN 1335
1310 IF MID$(TODAY$,4,2)>"20" AND DEL>1 AND DEL=<2 THEN DELINQUENT=DELINQUENT+1
1315 IF VAL(MID$(TODAY$,4,2))<20 AND DEL>0 AND DEL<2 THEN DELINQUENT=DELINQUENT+1
1320 IF MID$(TODAY$,4,2)>"20" AND DEL>1 AND DEL=<2 THEN DR=DR+OWE
1325 IF VAL(MID$(TODAY$,4,2))<20 AND DEL>0 AND DEL<2 THEN DR=DR+OWE
1330 IF LEFT$(TENANT$,6)="VACANT" OR LEFT$(TENANT$,30)=" " THEN 1340 ELSE 1335
1335 UR=UR+1
1340 IF LEFT$(PU$,1)="y" OR LEFT$(PU$,1)="Y" THEN 1345 ELSE 1360
1365 PRINT STRING$(79,"-"):PRINT "TOTAL UNITS PADLOCKED OR CUT=";TOTAL:PRINT "TOTAL MONEY DELINQUENT ON PADLOCKED ON CUT UNITS=";USING "$##,###.##";TOTOWE
1370 IF LEFT$(PU$,1)="Y" OR LEFT$(PU$,1)="y" THEN 1375 ELSE 1380
1375 LPRINT STRING$(79,"-"):LPRINT "TOTAL UNITS PADLOCKED OR CUT=";TOTAL:LPRINT "TOTAL MONEY DELINQUENT ON PADLOCKED OR CUT UNITS=";USING "$##,###.##";TOTOWE
1380 CLOSE:GOSUB 3595
1385 INPUT "STRIKE ENTER KEY";X:RETURN
1390 CLS:TOTAL=0:TOTOWE=0:INPUT "DO YOU WANT ADDRESSES PRINTED";ADATA$:IF LEFT$(ADATA$,1)="Y" OR LEFT$(ADATA$,1)="y" THEN ADATA=1 ELSE ADATA=0
1395 CLS:PRINT "LIST OF ALL UNITS WITH OUTSTANDING BALANCES":LPRINT "LIST OF ALL UNITS WITH OUTSTANDING BALANCES ON ";DATE$:PRINT STRING$(79,"-"):LPRINT STRING$(79,"-")
1420 IF MID$(TODAY$,4,2)>"20" AND OWE-RATE>0 THEN GOSUB 1450
1425 IF VAL(MID$(TODAY$,4,2))<20 AND OWE>0 THEN GOSUB 1450
1430 NEXT A
1435 PRINT STRING$(79,"-"):LPRINT STRING$(79,"-"):PRINT "TOTAL NUMBER OF UNITS WITH UNPAID BALANCES:";TOTAL:LPRINT "TOTAL NUMBER OF UNITS WITH UNPAID BALANCES:";TOTAL
1470 CLS:INPUT "WHAT IS THE EARLIEST DATE YOU WISH REVIEWED:";FIRST$:INPUT "WHAT IS THE LAST DATE YOU WISH REVIEWED:";LAST$
1475 CLS:PRINT TAB(15);"UNITS WITH TERMS EXPIRING BETWEEN ";FIRST$;" AND ";LAST$:PRINT "UNIT";TAB(10);"TENANT";TAB(45);"HOME PHONE";TAB(60);"WORK PHONE":LPRINT "UNITS WHICH MAY BE VACATED BETWEEN ";FIRST$;" AND ";LAST$:LPRINT STRING$(80,"-")
1520 PRINT STRING$(79,"-"):LPRINT STRING$(79,"-"):LPRINT "NUMBER OF UNITS WHICH MAY BE VACATED BETWEEN REQUESTED DATES:";TOTAL:PRINT "NUMBER OF UNITS WHICH MAY BE VACATED BETWEEN REQUESTED DATES:";TOTAL
1600 PRINT "4. ALL ITEMS CORRECT":INPUT "ENTER DESIRED NUMBER TO CORRECT";CHOICE:ON CHOICE GOTO 470,475,480,1605
1605 NEXT COUNT
1610 INPUT "DO YOU WISH A LISTING OF THESE PAYMENTS (Y=YES)";HC$: FOR A=1 TO 5:PRINT :IF LEFT$(HC$,1)="Y" OR LEFT$(HC$,1)="y" THEN LPRINT:NEXT A
1615 PRINT "#";TAB(10);"DATE PAID";TAB(30);"AMOUNT";TAB(45);"SOURCE":IF LEFT$(HC$,1)="Y" OR LEFT$(HC$,1)="y" THEN LPRINT "RECAP OF PAYMENTS MADE ON ";TODAY$:IF LEFT$(HC$,1)="Y" OR LEFT$(HC$,1)="y" THEN LPRINT STRING$(79,"-")
1620 IF LEFT$(HC$,1)="Y" OR LEFT$(HC$,1)="y" THEN LPRINT "#";TAB(10);"DATE PAID";TAB(30);"AMOUNT";TAB(45);"SOURCE":IF LEFT$(HC$,1)="Y" OR LEFT$(HC$,1)="y" THEN LPRINT STRING$(79,"-")
1635 IF LEFT$(HC$,1)="y" OR LEFT$(HC$,1)="Y" THEN GOSUB 485
1640 TOTPAID=TOTPAID+PAID(CC)
1645 NEXT CC
1650 PRINT STRING$(80,"-"):PRINT "TOTAL OF PAYMENTS ENTERED:";USING "$##,###.##";TOTPAID
1655 IF LEFT$(HC$,1)="Y" OR LEFT$(HC$,1)="y" THEN LPRINT STRING$(79,"-"):IF LEFT$(HC$,1)="Y" OR LEFT$(HC$,1)="y" THEN LPRINT "TOTAL PAYMENTS ENTERED:";USING "$##,###.##";TOTPAID
1660 TOTPAID=0:INPUT "EXAMINE LISTINGS FOR ACCURACY. STRIKE ENTER TO CONTINUE";X
1665 INPUT "ARE THERE CORRECTIONS (Y=YES)";CR$: IF LEFT$(CR$,1)="Y" OR LEFT$(CR$,1)="y" THEN 1805
1670 PRINT "WRITING PAYMENTS TO WORK FILE"
1675 GOSUB 155
1680 FOR A=1 TO PAYMENTS
1685 IF SOURCE(A)>NUM.UNITS THEN 1725
1690 UNIT=SOURCE(A)
1695 GET #1,UNIT:GET #2,UNIT:GET #3,UNIT:GOSUB 140
1700 PB(A)=OWE:OWE=OWE-PAID(A):LAST$=DAY$(A)
1705 T1=PAID(A)/RATE: GOSUB 3435
1710 DUE$=T1$+"/"+T2$+"/"+T3$
1715 GOSUB 120
1720 PUT #1,UNIT:PUT #2,UNIT:PUT #3,UNIT
1725 NEXT A
1730 CLOSE #1:CLOSE #2:CLOSE #3:PRINT "PAYMENTS POSTED"
1735 PRINT "MOVING PAYMENTS TO PERMANENT FILES"
1740 PRINT "MAKE CERTAIN YOU HAVE THE DATA DISK FOR RENT/EXPENSES/DAILY REPORTS":PRINT "INTO DRIVE B. STRIKE ENTER TO CONTINUE";:INPUT X
1775 OPEN "B:CHEK" FOR INPUT AS 1:INPUT #1,CHEK:CLOSE:PC=CHEK
1780 FOR AA=1 TO PAYMENTS
1785 CHEK=CHEK +PAID(AA):PP=PP+PAID(AA)
1790 NEXT AA
1795 CLS:OPEN "B:CHEK" FOR OUTPUT AS 2:PRINT #2,CHEK:CLOSE:PRINT "CHECKING ACCOUNT BALANCE BEFORE PAYMENTS:";USING "$###,###.##";PC:PRINT "BALANCE AFTER PAYMENTS OF ";USING "$###,###.##";PP;:PRINT " DEPOSITED IS ";USING "$###,###.##";CHEK
1800 PP=0:PC=0:CHEK=0:INPUT "STRIKE ENTER TO CONTINUE";X:RETURN
1805 INPUT "WHAT IS THE LINE NUMBER OF THE PAYMENT TO CHANGE";CHANGE
1970 PRINT STRING$(79,"-"):LPRINT STRING$(79,"-"):PRINT "AMOUNT OF THIS BILLING:";USING "$##,###.##";NEWBILL:LPRINT "AMOUNT OF THIS BILLING;";USING "$##,###.##";NEWBILL:PRINT "TOTAL NUMBER OF BILLS GENERATED:";COUNT:LPRINT "TOTAL";
1975 LPRINT " NUMBER OF BILLS GENERATED:";COUNT:PRINT "TOTAL NUMBER OF PRORATED BILLS:";PRORATE:LPRINT "TOTAL NUMBER OF PRORATED BILLS:";PRORATE:PRINT "RENT ON PRORATED UNITS:";USING "$##,###.##";PROWE
1980 LPRINT "RENT ON PRORATED UNITS:";USING "$##,###.##";PROWE:PRINT "NUMBER OF DELINQUENT UNITS";DELINQUENT:LPRINT "NUMBER OF DELINQUENT UNITS:";DELINQUENT:PRINT "RENT DUE ON DELINQUENT UNITS:";USING "$##,###.##";TOTDEL
1985 LPRINT "RENT DUE ON DELINQUENT UNITS:";USING "$##,###.##";TOTDEL
1990 RETURN
1995 VACANT=VACANT+1:VACRATE=VACRATE+RATE:IF SIZE$="5X10 " THEN VACSIZE=VACSIZE+50:IF SIZE$="5X20 " THEN VACSIZE=VACSIZE+100:IF SIZE$="10X10" THEN VACSIZE=VACSIZE+100:IF SIZE$="10X20" THEN VACSIZE=VACSIZE+200
2000 IF SIZE$="20X20" THEN VACSIZE=VACSIZE+400:GOTO 1965
2110 INPUT "WHAT IS THE FIRST DATE FOR WHICH YOU WANT BILLS PRODUCED";FIRST$:INPUT "WHAT IS THE LAST DATE";LAST$:INPUT "WHAT IS THE NEW DUE DATE";DUD$
2115 GOSUB 155
2120 FOR A=1 TO NUM.UNITS
2125 GET #1,A:GET #2,A:GET #3,A:GOSUB 140
2130 IF CUT$="P" OR CUT$="p" THEN 2135 ELSE 2145
2135 IF DUE$=>FIRST$ THEN 2140 ELSE 2145
2140 IF DUE$<=LAST$ THEN GOSUB 2210
2145 NEXT A
2150 PRINT "PRORATE BILLS PRODUCED. DO YOU WISH TO UPDATE THESE RECORDS WITH NEW DUE DATES AND RATES NOW (Y=YES)";ASK$:IF LEFT$(ASK$,1)="y" OR LEFT$(ASK$,1)="Y" THEN 2160
2155 CLOSE #1:CLOSE #2:CLOSE #3:RETURN
2160 FOR A=1 TO NUM.UNITS
2165 GET #1,A:GET #2,A:GET #3,A:GOSUB 140
2170 IF CUT$="P" OR CUT$="p" THEN 2175 ELSE 2195
2175 IF DUE$=>FIRST$ THEN 2180 ELSE 2195
2180 IF DUE$<=LAST$ THEN GOSUB 385
2185 GOSUB 120
2190 PUT #1,A:PUT #2,A:PUT #3,A
2195 NEXT A
2200 CLOSE #1:CLOSE #2:RETURN
2205 RETURN
2210 REM
2215 LPRINT TAB(58);TODAY$
2220 FST$=DUE$
2225 LPRINT TAB(5);TENANT$:LPRINT TAB(5);ADDR$:LPRINT TAB(5);ADDR1$:LPRINT TAB(5);CITY$;",";STA$;" ";ZIP$:FOR SPACE=1 TO 8:LPRINT:NEXT SPACE
4275 LPRINT STRING$(79,"-"):LPRINT "RECORDS IN FILE:";COUNT:LPRINT CHR$(12)
4280 RETURN
4285 CLS: PRINT "CORRECT RENTAL PAYMENT":INPUT "IN WHICH MONTH WAS THE PAYMENT MADE (1-12)";MONTH:ON MONTH GOSUB 2890,2895,2900,2905,2910,2915,2920,2925,2930,2935,2940,2945
4290 INPUT "WHAT DATE WAS THE PAYMENT MADE";CMD$:INPUT "WHAT WAS THE PAYMENT SOURCE";CMS
4295 OPEN FILE1$ FOR INPUT AS 1:OPEN "B:WORK" FOR OUTPUT AS 2
4515 INPUT "CREATE NAME AND ADDRESS FILES (IF STARTING UP FOR FIRST TIME ANSWER Y-(Y/N)";ASK$
4520 IF LEFT$(ASK$,1)="Y" OR LEFT$(ASK$,1)="y" THEN GOSUB 315
4525 PRINT "CREATE OTHER FILES FOR COMING YEAR":FILES "B:":PRINT "IF THE AMOUNT OF SPACE INDICATED AT THE BOTTOM ":PRINT "OF THE DIRECTORY LISTING ABOVE IS LESS THAN 100,000 BYTES"
4530 PRINT "PLACE A FRESHLY FORMATTED, PROPERLY LABELLED DISK IN DRIVE B...":PRINT "HIT `P' TO PROCEED, ANY OTHER KEY ABORTS PROCEDURE"
4535 A$=INKEY$:IF A$="" THEN 4535
4540 IF A$="p" OR A$="P" THEN 4545 ELSE 4580
4545 INPUT "FOR WHAT CALENDAR YEAR (19XX) WILL FILES BE CREATED";YEAR$:DATE$=LEFT$(DATE$,6)+YEAR$:OPEN "B:CHEK" FOR OUTPUT AS #1:PRINT #1,1:CLOSE
4550 FOR A=1 TO 12
4555 ON A GOSUB 2890,2895,2900,2905,2910,2915,2920,2925,2930,2935,2940,2945
4560 OPEN FILE$ FOR OUTPUT AS #1:OPEN FILE1$ FOR OUTPUT AS #2:FILE2$="B:DALY"+RIGHT$(STR$(A),1)+RIGHT$(YEAR$,2):OPEN FILE2$ FOR OUTPUT AS #3:CLOSE
4565 NEXT A
4570 PRINT "BE SURE TO COPY ALSO TO THIS DISK THESE FILES: B:DECEXX, B:DECEXPXX AND":PRINT "B:DALY12XX...WHERE `XX' IS THE CURRENT YEAR NUMBER. ":PRINT "THESE FILES MUST BE COPIED BEFORE DOING ANY DAILY REPORTS AFTER DEC. 31 OF THE CURRENT YEAR"
4575 DATE$=TODAY$:PRINT :PRINT :INPUT "STRIKE ENTER KEY TO CONTINUE";X